define(function(require, exports, module) {

  var Backbone = require('backbone');
  var $ = require('jquery');
  var _ = require('underscore');
  var jsonview = require('jsonview');

  var echarts = require('js/echarts');
  var chinaJson = require('json!npm/echarts/map/json/china.json');
  echarts.registerMap('china', chinaJson);
  var parseGeoJson = require('echarts/coord/geo/parseGeoJson');
  var worldJson = require('json!npm/echarts/map/json/world.json');
  echarts.registerMap('world', worldJson);
  var env = window.env;

  var geo = require('v/graph/option/geo-scatter')
  var hot = require('v/graph/option/geo-hot')
  var lines = require('v/graph/option/geo-lines')
  
  var style = require('v/graph/option/style')

  function main() {
    var chart1 = hotMap();
    var chart2 = scatterMap();
    var chart3 = linesMap();

    // chart.on('geoselectchanged', function(p1, p2) {
    //   console.log(arguments)
    // })
    //
    
    blingbling(chart1)

    // setInterval(function() {
    //   chart.dispatchAction({
    //     type: 'geoToggleSelect',
    //     // //可选，系列 index，可以是一个数组指定多个系列
    //     // seriesIndex: 2,
    //     // //可选，系列名称，可以是一个数组指定多个系列
    //     // seriesName?: string|Array,
    //     // //数据的 index，如果不指定也可以通过 name 属性根据名称指定数据
    //     // dataIndex: 0,
    //     // //可选，数据名称，在有 dataIndex 的时候忽略
    //     name: '广东'
    //   })
    // }, 1000)

    // var regions = parseGeoJson(worldJson);
    // var chinaEdge = _.find(regions, function(region) {
    //   return region.name === 'China'
    // })

    // console.log(chinaEdge)
  }

  function blingbling(chart) {
    highlight(chart)
    setTimeout(function() {
      downplay(chart)
      setTimeout(function() {
        blingbling(chart)
      }, 500)
    }, 500)
  }

  function hotMap() {
    var $app = $('<div id="app1">').width(env.w).height(env.h).css('background-color', style.backgroundColor);
    $('#main').append($app);

    var chart = echarts.init($app[0]);
    chart.setOption(hot);
    return chart;
  }

  function scatterMap() {
    var $app = $('<div id="app2">').width(env.w).height(env.h).css('background-color', style.backgroundColor);
    $('#main').append($app);

    var chart = echarts.init($app[0]);
    chart.setOption(geo);
    return chart;
  }

  function linesMap() {
    var $app = $('<div id="app3">').width(env.w).height(env.h).css('background-color', style.backgroundColor);
    $('#main').append($app);

    var chart = echarts.init($app[0]);
    chart.setOption(lines);
    return chart;
  }


  function highlight(chart) {
    chart.dispatchAction({
      type: 'highlight',
      // 可选，系列 index，可以是一个数组指定多个系列
      // seriesIndex: 0,
      // 可选，系列名称，可以是一个数组指定多个系列
      seriesName: '图例',
      // 数据的 index，如果不指定也可以通过 name 属性根据名称指定数据
      // dataIndex: 1,
      // 可选，数据名称，在有 dataIndex 的时候忽略
      name: '广东'
    })
  }

  function downplay(chart) {
    chart.dispatchAction({
      type: 'downplay',
      // 可选，系列 index，可以是一个数组指定多个系列
      // seriesIndex: 0,
      // 可选，系列名称，可以是一个数组指定多个系列
      seriesName: '图例',
      // 数据的 index，如果不指定也可以通过 name 属性根据名称指定数据
      // dataIndex: 1,
      // 可选，数据名称，在有 dataIndex 的时候忽略
      name: '广东'
    })
  }

  return main;
})
